package com.itheima.demo;

public class Demo2 {

    /*
        位运算符指的是二进制位的运算，先将十进制数转成二进制后再进行运算
        在二进制位运算中，1表示true，0表示false

        & 位与 ：遇 false 则 false，遇 0 则 0
                00000000 00000000 00000000 00000110     // 6 的二进制
              & 00000000 00000000 00000000 00000010     // 2 的二进制
              --------------------------------------
                00000000 00000000 00000000 00000010     // 结果：2

        | 位或 ：遇 true 则 true，遇 1 则 1

        ^ 位异或 ：相同为 false ，不同为 true

        ~ 取反 ： 全部相反， 0 变 1， 1 变 0（也包括符号位）
                 00000000 00000000 00000000 00000110        // 6 的二进制补码
               ~ 11111111 11111111 11111111 11111001
               -                                   1        // -1 求反码
               ---------------------------------------
                 11111111 11111111 11111111 11111001        // 反码推原码

                 10000000 00000000 00000000 00000111        // -1


        */
    public static void main(String[] args) {
        System.out.println(6 & 2);
        System.out.println(~6);
    }
}
